iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Mobile Development

Spring Boot & Android Studio教學系列 第 9

參數傳遞指南:讓資料流動無阻

  • 分享至 

  • xImage
  •  

參數傳遞

獲取HTTP請求的參數值,從而可以在方法中進行相應的處理。

@PathVariable

用於擷取 URL 中的路徑變數(Path Variable)。
通常在 URL 中使用 {} 定義的部分,例如 /users/{userId} 中的 userId 就是路徑變數。

url:/api/{id} => @PathVariable("id")

@GetMapping("/url/{id}")
public String url(@PathVariable("id") String id){
    return id;
}

@RequestParam

用於擷取 HTTP 請求的查詢參數(Query Parameter)。
查詢參數是在 URL 中以 ? 開頭的部分,例如 /search?query=example 中的 query 就是查詢參數。

query(Param): /api?id= => @RequestParam("id")

@GetMapping("/query")
public String query(@RequestParam("id")String id){
    return id;
}

@RequestBody

用於擷取 HTTP 請求的主體(Body)數據。
主體數據通常在 POST 或 PUT 請求中以 JSON 或其他格式的數據提交。

jsonBody(raw) => @RequestBody

@PostMapping("/jsonBody")
public User jsonBody (@RequestBody User user){
    return user;
}

User.java

public class User {
    private String account;
    private String password;
}

@RequestPart

用於擷取 HTTP 請求的一部分,通常用於處理多部分(Multipart)請求,例如文件上傳。

formData => @RequestPart("id")

@GetMapping("/formData")
public String formData (@RequestPart("file") MultipartFile file){
    // 處理上傳的文件
    return "Uploaded file name: " + file.getOriginalFilename();
}

@RequestHeader

用於擷取 HTTP 請求中的標頭信息,您可以使用它來獲取特定標頭的值。

@GetMapping("/user-agent")
public String getUserAgent(@RequestHeader("User-Agent") String userAgent) {
    return "User-Agent header value: " + userAgent;
}


上一篇
是Java就必須來個Hello World:實現您的第一個HTTP請求
下一篇
深入解析 Spring Boot 中的 @OneToOne 資料庫關聯
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言